<?php
/*
 * Pacientes del sistema: Funcionalidades: Listar, Editar, Eliminar.
 * @Autor: Andrés Ubilla.
 */
class Listar extends TPage{
    
    public function onLoad($param){
        parent::onLoad($param);
        
        if(!$this->IsPostBack){
            $this->validarSession();
            $this->cargarInterfaz();
        }
    }
    
    private function validarSession(){
        $oUsuario = Util::getSession("Usuario");
        if(Util::isNullOrEmpty($oUsuario)){
            $this->Response->redirect($this->Service->constructUrl("Home"));
        }
    }
    
    private function cargarInterfaz(){
        $this->validarSession();        
        $arr = $this->obtenerUsuarios();
        $this->iniciarControles($arr);
    }
    
    private function obtenerUsuarios(){
        $oUsuario = new Usuario();
        $oUsuarioBLL = new UsuarioBLL();
        $arr = $oUsuarioBLL->listar($oUsuario);
        return $arr;
    }
    
    private function iniciarControles($arr){
        $mensaje = Util::getSession("Mensaje");
        if(!Util::isNullOrEmpty($mensaje)){
            $this->litAlert->Text = $mensaje;
            Util::setSession("Mensaje", null);
        }
        if(count($arr) > 0){
            $this->pnlCabecera->Visible = false;
            $this->pnlSinRegistros->Visible = false;
            $this->pnlUsuarios->Visible = true;
            $this->dgUsuarios->DataSource = $arr;
            $this->dgUsuarios->dataBind();
        }else{
            $this->pnlCabecera->Visible = true;
            $this->pnlUsuarios->Visible = false;
            $this->pnlSinRegistros->Visible = true;
        }                
    }        
    
    public function btnEliminarOnClick(){
        $id = $this->idUsuario->Value;
        
        $oUsuarioBLL = new UsuarioBLL();
        $resultado = $oUsuarioBLL->eliminar($id);
        
        if(!Util::isNullOrEmpty($resultado)){
            $this->litAlert->Text = Util::setMensajeUsuario("Error al eliminar al usuario, por favor vuelva a intentarlo.", Util::MENSAJE_ERROR);
        }else{ 
            $this->cargarInterfaz();
            $this->litAlert->Text = Util::setMensajeUsuario("Usuario eliminado exitosamente.", Util::MENSAJE_OK);            
        }
    }
}
?>
